home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 2002 #11 / Amiga Plus CD - 2002 - No. 11.iso / Online / privoxy-3.0.0-stable / default.filter < prev    next >
Text File  |  2002-10-27  |  20KB  |  478 lines

  1. # ********************************************************************
  2. #  File        :  $Source: /cvsroot/ijbswa/current/default.filter,v $
  3. #  $Id: default.filter,v 1.11.2.6 2002/08/23 14:12:26 oes Exp $
  4. #
  5. #  Purpose     :  Rules to process the content of web pages
  6. #  Copyright   :  Written by and Copyright
  7. #                 Privoxy team. http://www.privoxy.org/
  8. #
  9. # We value your feedback. However, to provide you with the best support,
  10. # please note:
  11. #  
  12. #  * Use the support forum to get help:
  13. #    http://sourceforge.net/tracker/?group_id=11118&atid=211118
  14. #  * Submit bugs only thru our bug forum:
  15. #    http://sourceforge.net/tracker/?group_id=11118&atid=111118 
  16. #    Make sure that the bug has not already been submitted. Please try
  17. #    to verify that it is a Privoxy bug, and not a browser or site
  18. #    bug first. If you are using your own custom configuration, please
  19. #    try the stock configs to see if the problem is a configuration
  20. #    related bug. And if not using the latest development snapshot,
  21. #    please try the latest one. Or even better, CVS sources.
  22. #  * Submit feature requests only thru our feature request forum:
  23. #    http://sourceforge.net/tracker/?atid=361118&group_id=11118&func=browse
  24. #      
  25. # For any other issues, feel free to use the mailing lists:
  26. # http://sourceforge.net/mail/?group_id=11118
  27. #    
  28. # Anyone interested in actively participating in development and related
  29. # discussions can join the appropriate mailing list here:
  30. # http://sourceforge.net/mail/?group_id=11118. Archives are available
  31. # here too.
  32. #################################################################################
  33. #
  34. # Syntax:
  35. #
  36. # Filters start with a line "FILTER: name description". They are then referrable
  37. # from the actionsfile with +filter{name}
  38. #
  39. # Inside the filters, write one Perl-Style substitution (job) per line.
  40. # Jobs that precede the first FILTER: line are ignored.
  41. #
  42. # For Details see the pcrs manpage contained in this distribution.
  43. # (and the perlre, perlop and pcre manpages)
  44. #
  45. # Note that you are free to choose the delimter as you see fit.
  46. #
  47. # Note2: In addidion to the Perl options gimsx, the following nonstandard
  48. # options are supported:
  49. # 'U' turns the default to ungreedy matching.  Add ? to quantifiers to
  50. #     switch back to greedy.
  51. # 'T' (trivial) prevents parsing for backreferences in the substitute.
  52. #     Use if you want to include text like '$&' in your substitute without
  53. #     quoting.
  54. #################################################################################
  55.  
  56.  
  57. #################################################################################
  58. #
  59. # js-annoyances: Get rid of particularly annoying JavaScript abuse
  60. #
  61. #################################################################################
  62. FILTER: js-annoyances Get rid of particularly annoying JavaScript abuse
  63.  
  64. # Note: Most of these jobs would be safer if restricted to a
  65. # <script> context as in:
  66. #
  67. # s/(<script.*)nasty-item(?=.*<\/script>)/$1replacement/sigU
  68. #
  69. # but that would make them match only the first occurance of
  70. # nasty-item in each <script>. We need nestable jobs!
  71.  
  72. # Get rid of Javascript referrer tracking. 
  73. # Test page: http://www.javascript-page.com/referrer.html
  74. #
  75. s|document\.referrer|"Not Your Business!"|gisU
  76.  
  77. # The status bar is for displaying link targets, not pointless blahblah
  78. #
  79. s/([\n =;{}]|window\.)(default)?status\s*=/$1dUmMy=/ig
  80.  
  81. # Kill OnUnload popups. Yummy.
  82. # Test: http://www.zdnet.com/zdsubs/yahoo/tree/yfs.html
  83. #
  84. s/(<body\s+[^>]*)onunload(.*>)/$1never$2/siU
  85. s|(<script.*)window\.onunload(?=.*</script>)|$1never|sigU
  86.  
  87. # If we allow window.open, we want normal window features: 
  88. # Test: http://www.htmlgoodies.com/beyond/notitle.html
  89. #
  90. s/(open\s*\([^\)]+resizable=)(["']?)(?:no|0)\2/$1$2yes$2/sigU
  91. s/(open\s*\([^\)]+location=)(["']?)(?:no|0)\2/$1$2yes$2/sigU 
  92. s/(open\s*\([^\)]+status=)(["']?)(?:no|0)\2/$1$2yes$2/sigU 
  93. s/(open\s*\([^\)]+scroll(?:ing|bars)=)(["']?)(?:no|0)\2/$1$2auto$2/sigU 
  94. s/(open\s*\([^\)]+menubar=)(["']?)(?:no|0)\2/$1$2yes$2/sigU 
  95. s/(open\s*\([^\)]+toolbar=)(["']?)(?:no|0)\2/$1$2yes$2/sigU 
  96. s/(open\s*\([^\)]+directories=)(["']?)(?:no|0)\2/$1$2yes$2/sigU 
  97. s/(open\s*\([^\)]+fullscreen=)(["']?)(?:yes|1)\2/$1$2no$2/sigU
  98. s/(open\s*\([^\)]+always(?:raised|lowered)=)(["']?)(?:yes|1)\2/$1$2no$2/sigU
  99. s/(open\s*\([^\)]+zlock=)(["']?)(?:yes|1)\2/$1$2no$2/sigU
  100. s/(open\s*\([^\)]+hotkeys=)(["']?)(?:yes|1)\2/$1$2no$2/sigU
  101. s/(open\s*\([^\)]+titlebar=)(["']?)(?:yes|1)\2/$1$2yes$2/sigU
  102.  
  103.  
  104. #################################################################################
  105. #
  106. # html-annoyances: Get rid of particularly annoying HTML abuse
  107. #
  108. #################################################################################
  109. FILTER: html-annoyances Get rid of particularly annoying HTML abuse
  110.  
  111. # New browser windows (if allowed -- see no-popups filter below) should be
  112. # resizeable and have a location and status bar
  113. #
  114. s/(<a\s+href[^>]+resizable=)(['"]?)(?:no|0)\2/$1$2yes$2/igU 
  115. s/(<a\s+href[^>]+location=)(['"]?)(?:no|0)\2/$1$2yes$2/igU 
  116. s/(<a\s+href[^>]+status=)(['"]?)(?:no|0)\2/$1$2yes1$2/igU
  117. s/(<a\s+href[^>]+scrolling=)(['"]?)(?:no|0)\2/$1$2auto$2/igU
  118. s/(<a\s+href[^>]+menubar=)(['"]?)(?:no|0)\2/$1$2yes$2/igU
  119.  
  120. # The <BLINK> tag was a crime!
  121. #
  122. s*<blink>|</blink>**ig
  123.  
  124.  
  125. #################################################################################
  126. #
  127. # content-cookies: Kill cookies that come in the HTML or JS content
  128. #
  129. #################################################################################
  130. FILTER: content-cookies Kill cookies that come in the HTML or JS content
  131.  
  132. # JS cookies, like found on privacy.net:
  133. #
  134. s|document\.cookie(?=[ \t\r\n]*=)|ZappedCookie|ig
  135.  
  136. # HTML cookies:
  137. #
  138. s|<meta\s+http-equiv=['"]?set-cookie.*>|<!-- ZappedCookie -->|igU
  139.  
  140.  
  141. #################################################################################
  142. #
  143. # webbugs: Squish WebBugs (1x1 invisible GIFs used for user tracking)
  144. #
  145. #################################################################################
  146. FILTER: webbugs Squish WebBugs (1x1 invisible GIFs used for user tracking)
  147.  
  148. s/<img\s+[^>]*(?:width|height)\s*=\s*['"]?1(?=\D)[^>]*(?:width|height)\s*=\s*['"]?1(?=\D)[^>]*?>//siUg
  149.  
  150.  
  151. ##################################################################################
  152. #
  153. # popups: Kill all popups in JS and HTML
  154. #
  155. #################################################################################
  156. FILTER: popups Kill all popups in JS and HTML
  157.  
  158. s/([\n =;{}]|window\.)open\s*\\?\(/$1concat(/ig      # JavaScript
  159. s/ target\s*=\s*(['"]?)(_blank|_new)\1?/ notarget/ig # HTML
  160.  
  161.  
  162. #################################################################################
  163. #
  164. # frameset-borders: Give frames a border, make them resizable and scrollable
  165. #
  166. #################################################################################
  167. FILTER: frameset-borders Give frames a border and make them resizable
  168.  
  169. s/(<frameset\s+[^>]*)framespacing=(['"]?)(no|0)\2/$1/igU
  170. s/(<frameset\s+[^>]*)frameborder=(['"]?)(no|0)\2/$1/igU
  171. s/(<frameset\s+[^>]*)border=(['"]?)(no|0)\2/$1/igU
  172. s/(<frame\s+[^>]*)noresize/$1/igU
  173. s/(<frame\s+[^>]*)frameborder=(['"]?)(no|0)\2/$1/igU 
  174. s/(<frame\s+[^>]*)scrolling=(['"]?)(no|0)\2/$1/igU
  175.  
  176.  
  177. #################################################################################
  178. #
  179. # refresh-tags: Kill automatic refresh tags (for dial-on-demand setups)
  180. #
  181. #################################################################################
  182. FILTER: refresh-tags Kill automatic refresh tags (for dial-on-demand setups)
  183.  
  184. # Note: Only deactivates refreshes with more than 9 seconds delay to
  185. #       preserve monster-stupid but common redirections via meta tags.
  186. #
  187. s/<meta\s+http-equiv\s*=\s*(['"]?)refresh\1\s+content\s*=\s*(['"]?)\d{2,}\s*(;\s*url\s*=\s*([^>\2]*))?\2\s*>/<link rev="x-refresh" href="$4">/iU
  188.  
  189.  
  190. #################################################################################
  191. #
  192. # img-reorder: Reorder attributes in <img> tags to make the banners-by-* filters more effective
  193. #
  194. #################################################################################
  195. FILTER: img-reorder Reorder attributes in <img> tags to make the banners-by-* filters more effective
  196.  
  197. # In the first step src is moved to the start, then width is moved to the second
  198. # place to guarantee an order of src, width, height.
  199. # This makes banners-by-size more effective and allows both banners-by-size
  200. # and banners-by-link to preserve the original image URL in the alt attribute.
  201.  
  202. s|<img\s+([^\\>]*)src\s*=\s*(['"])([^>\\\2]+)\2(.*)>|<img src="$3" $1$4>|siUg
  203. s|<img\s+([^\\>]*)src\s*=\s*([^'">\\\s]+?)([^\\>]*)>|<img src="$2" $1$3>|siUg
  204.  
  205. s|<img (src="[^"]*") ([^>]*)width\s*=\s*?(["']?)(\d+?)\3(.*)>|<img $1 width="$4" $2$5>|siUg
  206.  
  207.  
  208. #################################################################################
  209. #
  210. # banners-by-size: Kill banners by size
  211. #
  212. #################################################################################
  213. #
  214. # Standard banner sizes taken from http://www.iab.net/iab_banner_standards/bannersizes.html
  215. #
  216. # Note: Use http://config.privoxy.org/send-banner?type=trans for a transparent 1x1 image
  217. #       Use http://config.privoxy.org/send-banner?type=pattern for a grey/white pattern image
  218. #       Use http://config.privoxy.org/send-banner?type=auto  to auto-select.
  219. #
  220. #################################################################################
  221. FILTER: banners-by-size Kill banners by size
  222.  
  223. # 88*31
  224. s@<img(?: src="([^"]*)")??[^>]*(width=(['"]?)88\3)[^>]*(height=(['"]?)31\5)[^>]*>@<img src=http://config.privoxy.org/send-banner?type=auto alt=Killed-$1-by-size $2 $4>@sigU
  225. # 120*60, 120*90, 120*240, 120*600
  226. s@<img(?: src="([^"]*)")??[^>]*(width=(['"]?)120\3)[^>]*(height=(['"]?)(?:600?|90|240)\5)[^>]*>@<img src=http://config.privoxy.org/send-banner?type=auto alt=Killed-$1-by-size $2 $4>@sigU
  227. # 125*125
  228. s@<img(?: src="([^"]*)")??[^>]*(width=(['"]?)125\3)[^>]*(height=(['"]?)125\5)[^>]*>@<img src=http://config.privoxy.org/send-banner?type=auto alt=Killed-$1-by-size $2 $4>@sigU
  229. # 160*600
  230. s@<img(?: src="([^"]*)")??[^>]*(width=(['"]?)160\3)[^>]*(height=(['"]?)600\5)[^>]*>@<img src=http://config.privoxy.org/send-banner?type=auto alt=Killed-$1-by-size $2 $4>@sigU
  231. # 180*150
  232. s@<img(?: src="([^"]*)")??[^>]*(width=(['"]?)180\3)[^>]*(height=(['"]?)150\5)[^>]*>@<img src=http://config.privoxy.org/send-banner?type=auto alt=Killed-$1-by-size $2 $4>@sigU
  233. # 234*60, 468*60 (Most Banners!)
  234. s@<img(?: src="([^"]*)")??[^>]*(width=(['"]?)(?:234|468)\3)[^>]*(height=(['"]?)60\5)[^>]*>@<img src=http://config.privoxy.org/send-banner?type=auto alt=Killed-$1-by-size $2 $4>@sigU
  235. # 240*400
  236. s@<img(?: src="([^"]*)")??[^>]*(width=(['"]?)240\3)[^>]*(height=(['"]?)400\5)[^>]*>@<img src=http://config.privoxy.org/send-banner?type=auto alt=Killed-$1-by-size $2 $4>@sigU
  237. # 250*250, 300*250
  238. s@<img(?: src="([^"]*)")??[^>]*(width=(['"]?)(?:250|300)\3)[^>]*(height=(['"]?)250\5)[^>]*>@<img src=http://config.privoxy.org/send-banner?type=auto alt=Killed-$1-by-size $2 $4>@sigU
  239. # 336*280
  240. s@<img(?: src="([^"]*)")??[^>]*(width=(['"]?)336\3)[^>]*(height=(['"]?)280\5)[^>]*>@<img src=http://config.privoxy.org/send-banner?type=auto alt=Killed-$1-by-size $2 $4>@sigU
  241.  
  242. # Note: 200*50 was also proposed, but it probably causes too much collateral damage:
  243. #
  244. #s@<img(?: src="([^"]*)")??[^>]*(width=(['"]?)200\3)[^>]*(height=(['"]?)50\5)[^>]*>@<img src=http://config.privoxy.org/send-banner?type=auto alt=Killed-$1-by-size $2 $4>@sigU
  245.  
  246.  
  247. #################################################################################
  248. #
  249. # banners-by-link: Kill banners by their links to known clicktrackers
  250. #
  251. #################################################################################
  252. FILTER: banners-by-link Kill banners by their links to known clicktrackers
  253.  
  254. # Common case with width and height attributes:
  255. #
  256. s@<a\s+href\s*=\s*(['"]??)([^>\1]*(?:\
  257.   adclick                             # See www.dn.se \
  258. | atwola\.com/(?:link|redir)          # see www.cnn.com \
  259. | /jump/                              # redirs for doublecklick.net ads \
  260. | tracker | counter                   # common \
  261. | adlog\.pl                           # see sf.net \
  262. )[^>\1]*)\1[^>]*>\s*<img(?: src="([^"]*)")??[^>]*((?:width|height)\s*=\s*(['"]?)\d+?\5)[^>]*((?:width|height)\s*=\s*(['"]?)\d+?\7)[^>]*>\
  263. @<img $4 $6 src="http://config.privoxy.org/send-banner?type=auto" alt="Killed $3 by hwlink to $2">@siUgx
  264.  
  265. # Rare case w/o explicit dimensions:
  266. #
  267. s@<a\s+href\s*=\s*(['"]??)([^>\1]*(?:adclick|atwola\.com/(?:link|redir)|doubleclick\.net/jump)[^>\1]*)\1[^>]*>\s*<img(?: src="([^"]*)")??[^>]*>@<img src="http://config.privoxy.org/send-banner?type=auto" alt="Killed $3 by link to $2">@siUg
  268.  
  269. #################################################################################
  270. #
  271. # fun: Text replacements for subversive browsing fun!
  272. #
  273. #################################################################################
  274. FILTER: fun Text replacements for subversive browsing fun!
  275.  
  276. s/microsoft(?!.com)/MicroSuck/ig
  277.  
  278. # Buzzword Bingo (example for extended regex syntax)
  279. #
  280. s* industry[ -]leading \
  281. |  cutting[ -]edge \
  282. |  customer[ -]focused \
  283. |  market[ -]driven \
  284. |  award[ -]winning # Comments are OK, too! \
  285. |  high[ -]performance \
  286. |  solutions[ -]based \
  287. |  unmatched \
  288. |  unparalleled \
  289. |  unrivalled \
  290. *<font color="red"><b>BINGO!</b></font> \
  291. *igx
  292.  
  293.  
  294. #################################################################################
  295. #
  296. # nimda: Remove Nimda (virus) code
  297. #
  298. #################################################################################
  299. FILTER: nimda Remove Nimda (virus) code
  300.  
  301. s%<script language="JavaScript">(window\.open|1;''\.concat)\("readme\.eml", null, "resizable=no,top=6000,left=6000"\)</script>%<br><font size="7"> WARNING: This Server is infected with <a href="http://www.cert.org/advisories/CA-2001-26.html">Nimda</a>!</font>%g
  302.  
  303.  
  304. #################################################################################
  305. #
  306. # shockwave-flash: Kill embedded Shockwave Flash objects
  307. #
  308. #################################################################################
  309. FILTER: shockwave-flash Kill embedded Shockwave Flash objects
  310.  
  311. s|<embed [^>]*application/x-shockwave-flash.*</embed>|<!-- Squished Shockwave Flash Embed -->|sigU
  312.  
  313.  
  314. #################################################################################
  315. #
  316. # quicktime-kioskmode: Make Quicktime movies saveable
  317. #
  318. #################################################################################
  319. FILTER: quicktime-kioskmode Make Quicktime movies saveable
  320.  
  321. s/(<embed\s+[^>]*)kioskmode\s*=\s*(["']?)true\2/$1/ig 
  322.  
  323.  
  324. #################################################################################
  325. #
  326. # js-events: Kill all JS event bindings (Radically destructive! Only for extra nasty sites)
  327. #
  328. #################################################################################
  329. FILTER: js-events Kill all JS event bindings (Radically destructive! Only for extra nasty sites)
  330.  
  331. s/(on|event\.)((mouse(over|out|down|up|move))|(un)?load|contextmenu|selectstart)/never/ig
  332. # Not events, but abused on the same type of sites:
  333. s/(alert|confirm)\s*\(/concat(/ig
  334.  
  335.  
  336. #################################################################################
  337. #
  338. # crude-parental: Crude parental filtering?  (Use along with a suitable blocklist).
  339. #                 Shows how to deny access to whole page based on a keyword.
  340. #
  341. #################################################################################
  342. FILTER: crude-parental Crude parental filtering (demo only)
  343.  
  344. # (Note: Middlesex, Sussex and Essex are counties in the UK, not rude words)
  345. # (Note #2: Is 'sex' a rude word?!)
  346.  
  347. s%^.*(?<!middle)(?<!sus)(?<!es)sex.*$%<html><head><title>Blocked</title></head><body><h3>Blocked due to possible adult content. Please see <a href="http://dmoz.org/Kids_and_Teens/">this site</a>.</h3></body></html>%is
  348. s+^.*warez.*$+<html><head><title>No Warez</title></head><body><h3>You're not searching for illegal stuff, are you?</h3></body></html>+is
  349.  
  350.  
  351. ############################################################################## 
  352. #
  353. #  Revisions   :
  354. #     $Log: default.filter,v $
  355. #     Revision 1.11.2.6  2002/08/23 14:12:26  oes
  356. #     Proofed frameset-borders against "fremaborder=0 border=0"
  357. #
  358. #     Revision 1.11.2.5  2002/08/22 15:05:20  oes
  359. #     Added Filter to make Quicktime movies saveable (thanks to aaron@linville.org for the idea)
  360. #
  361. #     Revision 1.11.2.4  2002/08/10 11:32:29  oes
  362. #     Attribute values in replacement tags of banners-by-size filter now undelimited. (Fixes bug #592493)
  363. #
  364. #     Revision 1.11.2.3  2002/08/05 11:43:56  oes
  365. #     Fixed a bug in the popups filter that was introduced with the last fix :-(
  366. #
  367. #     Revision 1.11.2.2  2002/08/01 11:20:13  oes
  368. #     Fixed bugs 587802, 577802 and an unreported one
  369. #
  370. #     Revision 1.11.2.1  2002/07/26 15:18:26  oes
  371. #     - All filters reviewed and many shorcomings fixed
  372. #     - New filters: img-reorder, banners-by-link and js-events
  373. #     - Jobs reorderd because they are now executed in order of
  374. #       appearance
  375. #
  376. #     Revision 1.11  2002/05/24 00:57:18  oes
  377. #     Made WeBugs job ungreedy; Fixes bug 559190
  378. #
  379. #     Revision 1.10  2002/04/18 10:14:19  oes
  380. #     renamed some filters
  381. #
  382. #     Revision 1.9  2002/04/11 07:36:35  oes
  383. #     Generalized js-popup filter
  384. #
  385. #     Revision 1.8  2002/04/10 17:07:21  oes
  386. #     Fixed potentially desctructive jobs, added noflash filter
  387. #
  388. #     Revision 1.7  2002/04/09 18:34:51  oes
  389. #     Fixed HTML syntax in replacements
  390. #
  391. #     Revision 1.6  2002/04/03 19:49:52  swa
  392. #     name change
  393. #
  394. #     Revision 1.5  2002/03/27 15:30:26  swa
  395. #     have a consistent appearance
  396. #
  397. #     Revision 1.4  2002/03/26 22:29:54  swa
  398. #     we have a new homepage!
  399. #
  400. #     Revision 1.3  2002/03/24 16:08:03  jongfoster
  401. #     Fixing banners-by-size for new config URLs
  402. #
  403. #     Revision 1.2  2002/03/24 13:02:18  swa
  404. #     name change related issues.
  405. #
  406. #     Revision 1.1  2002/03/24 11:37:39  jongfoster
  407. #     Name change
  408. #
  409. #     Revision 1.24  2002/03/16 20:39:54  oes
  410. #      - Added descriptions to the filters so users will know what they select in the cgi editor
  411. #      - Added content-cookies filter
  412. #      - Bugfixed many jobs (Thanks to Al for some hints)
  413. #
  414. #     Revision 1.22  2002/03/12 13:42:50  oes
  415. #     Fixing & Optimizing REs
  416. #
  417. #     Revision 1.21  2002/03/12 11:59:20  oes
  418. #     Beefed up Buzzword Bingo
  419. #
  420. #     Revision 1.20  2002/03/12 01:42:50  oes
  421. #     Introduced modular filters
  422. #
  423. #     Revision 1.19  2002/03/10 19:49:24  oes
  424. #     Added expression to kill referer tracking in JavaScripts
  425. #
  426. #     Revision 1.18  2002/03/08 17:14:12  oes
  427. #     PNG -> image in comments
  428. #
  429. #     Revision 1.17  2002/03/07 03:50:54  oes
  430. #     Adapted comments to new built-in images
  431. #
  432. #     Revision 1.16  2002/02/21 00:12:19  jongfoster
  433. #     Modifying the banner regexps to use long URLS and to autodetect
  434. #     whether to show a logo or a transparent GIF, based on actionsfile
  435. #     setting.
  436. #
  437. #     Revision 1.15  2001/12/28 23:54:20  steudten
  438. #     Fix for feature Req #495374: http-equiv problem
  439. #
  440. #     Revision 1.14  2001/12/09 18:55:11  david__schmidt
  441. #     Updated CODE_STATUS to beta, commented out microsuck line in re_filterfile
  442. #     for 2.9.10 beta
  443. #
  444. #     Revision 1.13  2001/10/13 13:11:20  joergs
  445. #     Fixed WebBug filter.
  446. #
  447. #     Revision 1.12  2001/10/07 15:46:42  oes
  448. #     Followed Guy's proposal to change the document.cookie job
  449. #
  450. #     Revision 1.11  2001/09/21 12:34:00  joergs
  451. #     Added filter to replace "Nimda" code by a warning.
  452. #
  453. #     Revision 1.10  2001/07/20 11:04:26  oes
  454. #     Added Rodneys javascript cookie filter
  455. #
  456. #     Revision 1.9  2001/07/13 14:03:48  oes
  457. #     Elimiated yet another bug in the banner-by-size jobs. Shame on me!
  458. #
  459. #     Revision 1.8  2001/06/29 13:34:00  oes
  460. #     - Added explanation for U and T options
  461. #     - Added hint on image replacement by CGI call
  462. #     - Fixed bug in banner-by-size jobs
  463. #
  464. #     Revision 1.7  2001/06/19 14:21:56  oes
  465. #     Fixed microsuck line
  466. #
  467. #     Revision 1.6  2001/06/09 14:01:57  swa
  468. #     header. cosmetics. default: no messing ala microsuck.
  469. #
  470. #
  471.